1. Field of the Invention
The present invention relates to an apparatus for generating image information that is to be transmitted to a terminal device connected by way of a network, and a method and a computer program product for detecting image updates.
2. Description of the Related Art
Computers with an image displaying function, such as personal computers (PC), are generally provided with a frame buffer such as a video random access memory (VRAM) to hold graphic data (image information) that is to be presented on a display. The frame buffer is formed of memory regions associated with X and Y coordinates, and has addresses assigned linearly in the raster scanning order. The LCD (liquid crystal display) controller and the CRT (cathode ray tube) controller obtain image information from the frame buffer in accordance with the raster scanning.
The frame buffer of a graphic device in a conventional computer is configured to arrange screen data linearly in the raster scanning direction of the screen display so that it is advantageous to display an image on the monitor connected to the computer.
On the other hand, systems have been developed to display on a terminal device a display screen of an application or the like running on a virtual computer server or to remotely control a terminal device. Such systems need to transmit the image information obtained from the frame buffer to an external device.
For instance, JP-A 2003-85135 (KOKAI) suggests a technology related to a remote operation system that operates a remote terminal from a local terminal. More specifically, JP-A 2003-85135 (KOKAI) shows a method of releasing the lock state of a remotely operated terminal by an input of a pass phrase from the operating terminal, while bringing the screen of the remote terminal into a power saving mode to improve security and save power during the remote operation.
With conventional technologies including JP-A 2003-85135 (KOKAI), data that is to be written into the frame buffer and data that is to be transmitted to a remotely operated terminal are determined in accordance with an update of the desktop screen, and image information of only the updated portion is transmitted. A computer having a high-specification graphic function can thereby handle the communication load that tends to increase. In addition, a technique of compressing an image at the time of image transmission to reduce the communication load is well known.
As an example of a method of detecting an updated portion of the image information stored in the frame buffer, a software program that writes data in the frame buffer generates a report on the coordinate information of the updated portion. There are drawbacks, however, in this method that the procedure of the software has to be changed to make a report on the coordinate information of the updated portion and that overhead increases owing to the report making.
If a processor has a virtual memory managing function, an updated portion of the image information may be detected by use of a memory management unit (MMU). Most MMUs are provided with a conversion table to calculate a physical address from a virtual address. On the conversion table, a value of a bit (dirty bit) is provided to determine whether data has been written to each page. In the method incorporating the MMU, an updated page is detected in accordance with the value of the dirty bit, and an updated portion of the image information is detected from the detected page.
There is a problem in this method of adopting a dirty bit of the conversion table, however, that the efficiency of detecting an updated portion is lowered. For instance, when a frame buffer has a structure in which an amount of data per pixel is 4 bytes and one page includes 4096 bytes and a screen includes 1024×768 pixels, one line in the raster scanning direction corresponds to one page.
For this reason, if an update is made to a rectangular region, for example, on a desktop application that deals with substantially a large number of rectangular graphics, updated pages the number of which corresponds to the number of lines equivalent to the height of the rectangle would be detected. Then, an updated portion of the rectangle has to be detected from all the updated pages that are detected. A small proportion of the updated portion to the update pages means that a large number of updated pages need to be subjected to the detection process to detect the updated portion.